package com.heima.controller;

import com.heima.common.result.PageResult;
import com.heima.common.result.Result;
import com.heima.pojo.dto.SkuClassDTO;
import com.heima.pojo.entity.SkuClass;
import com.heima.service.SkuClassService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * \* User: chy
 * \* Date: 2025/8/15  18:58
 * \* Description: 商品分类控制器
 * \
 */
@RestController
@RequestMapping("/api/vm-service/skuClass")
@Slf4j
public class SkuClassController {
    @Autowired
    private SkuClassService skuClassService;

    /**
     * 商品分类搜索接口
     * @param searchDTO
     * @return
     */
    @GetMapping("/search")
    public PageResult<SkuClass> page(SkuClassDTO searchDTO){
        log.info("商品分类搜索接口{}",searchDTO);
        PageResult<SkuClass> pageResult = skuClassService.page(searchDTO);
        return pageResult;
    }

    /**
     * 新增分类
     * @param skuClass
     * @return
     */
    @PostMapping
    public Result add(@RequestBody SkuClass skuClass){
        log.info("新增分类{}",skuClass);
        skuClassService.add(skuClass);
        return Result.success();
    }

    /**
     * 根据分类id获取分类基本信息
     * @param classId
     * @return
     */
    @GetMapping("/{classId}")
    public SkuClass get(@PathVariable String classId){
        log.info("根据分类id获取分类基本信息{}",classId);
        SkuClass skuClass = skuClassService.get(classId);

        return skuClass;
    }

    /**
     * 修改分类
     * @param classId
     * @param skuClass
     * @return
     */
    @PutMapping("/{classId}")
    public Result update(@PathVariable String classId,@RequestBody SkuClass skuClass){
        log.info("修改分类{},{}",skuClass,classId);
        //将classId转为Integer格式
        skuClass.setClassId(Integer.parseInt(classId));
        skuClassService.update(skuClass);
        return Result.success();
    }

    /**
     * 删除分类
     * @param classId
     * @return
     */
    @DeleteMapping("/{classId}")
    public Result delete(@PathVariable String classId){
        log.info("删除分类{}",classId);
        skuClassService.delete(classId);
        return Result.success();
    }

}
